package 题目集.位运算.异或;

import java.util.Scanner;

/**
 * https://www.acwing.com/problem/content/3488/
 */
public class ch02_最大异或和 {
    /**
     * 异或+前缀和+窗口
     * 异或运算拥有差分的性质。
     * 例如：a^b=c，那么有 b=a^c 或者 a=b^c
     * 将本题以前缀和的方式去解，相当于求一个最大的s[r]^s[l-1]，且r-l<=m
     * 这题的正解是异或+前缀和+窗口+前缀树，但考试我不可能想出来
     */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int m = sc.nextInt();
        long[] pre = new long[n + 1];
        if (n == 0) {
            System.out.println(0);
            return;
        }
        for (int i = 1; i <= n; i++) {
            pre[i] = pre[i - 1] ^ sc.nextInt();
        }
        long res = 0;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= m && i - j >= 0; j++) {
                res=Math.max(res,pre[i]^pre[i-j]);
            }
        }
        System.out.println(res);
    }
}
